/**
 * 
 */
package it.unical.canonaco.rende.igpe.game.cbv.logiclayer.engine.component.world;

import it.unical.canonaco.rende.igpe.game.cbv.logiclayer.engine.component.pawn.GenericPawn;

/**
 * @author Massimo Canonaco
 *
 */

public class Field {
	public static final TextureInfoBean NO_TEXTURE = new TextureInfoBean("", "", "", -1);
	/*
	 * Inizialmente questa classe era una classe interna a Chessboard, per motivi di performance e
	 * di pigrizia, metto le sue variabili con scope package in modo che Chessboard puo' ancora 
	 * "maneggiarla" come se fosse interna.
	 * Il motivo per cui l'ho spostata come classe propria e' che penso che avere dei prototypes di
	 * un "tipo" di cella puo' (sara' di sicuro) ritornare utile nel l'editor per livelli.
	 */

	boolean spawnable;
	boolean walkable;
	GenericPawn pawn;
	TextureInfoBean texture;
		 
		 public Field()
		 {
			 texture = NO_TEXTURE;
			 spawnable = false;
			 walkable = false;
		 }
		 
		 /**
		 * @return the texture
		 */
		public TextureInfoBean getTexture() {
			return texture;
		}

		/**
		 * @param texture the texture to set
		 */
		public void setTexture(final TextureInfoBean texture) {
			this.texture = texture;
		}

		/**
		 * @return the spawnable
		 */
		public boolean isSpawnable() {
			return spawnable;
		}

		/**
		 * @param spawnable the spawnable to set
		 */
		public void setSpawnable(boolean spawnable) {
			this.spawnable = spawnable;
		}

		/**
		 * @return the walkable
		 */
		public boolean isWalkable() {
			return walkable;
		}

		/**
		 * @param walkable the walkable to set
		 */
		public void setWalkable(boolean walkable) {
			this.walkable = walkable;
		}

		/**
		 * @return the pawn
		 */
		public GenericPawn getPawn() {
			return pawn;
		}

		/**
		 * @param pawn the pawn to set
		 */
		public void setPawn(GenericPawn pawn) {
			this.pawn = pawn;
		}
}
